#pragma once
#include <string>




static enum  Chords {
	A=3, B=5, C=0, D=2, E=4, F=11, G=1, As=10, Cs=7, Ds=9, Fs=6, Gs=8, Ab=8, Bb=10, Db=7, Eb=9, Gb=6, None=20
};

//Only keys between 48 and 83
static enum Keys {
	A1 = 57, A2 = 69, A3 = 81, Ab1 = 56, Ab2 = 68, Ab3 = 80, B1 = 59, B2 = 71, B3 = 83, Bb1 = 58, Bb2 = 70, Bb3 = 82, C1 = 48, C2 = 60, C3 = 72, D1 = 50, D2 = 62, D3 = 74, Db1 = 49, Db2 = 61, Db3 = 73, E1 = 52, E2 = 64, E3 = 76, Eb1 = 51, Eb2 = 63, Eb3 = 75, F1 = 53, F2 = 65, F3 = 77, G1 = 55, G2 = 67, G3 = 79, Gb1 = 54, Gb2 = 66, Gb3 = 78
};


int GetDif(int a, int b);
double GetDif(double a, double b);

char * getKeyName(Chords key);
void printw (float x, float y, float z, char* format, ...);


struct Note {
	Note();
	Note(Keys k, Chords c, int vol, bool main);
	Chords mChord; //which chord it's a part of...?
	Keys mKey;
	int mVol; //volume
	bool mFade; //true if note is fading
	bool mMain; //true if note is part of the main chord being played
};